package com.lds.erp.order;


import com.dph.common.utils.service.BaseOrder;
import com.lds.erp.order.order.order.*;
import com.lds.erp.order.order.result.*;

/**
 * @author liuli
 * @apiNote
 * @date 2019/1/23 10:26 AM
 */
public interface OrderOrderClient {

    /**
     * 创建订单
     * @param order
     * @return
     */
    MchCreateOrderResult mchCreateOrder(MchCreateOrderOrder order);

    /**
     * 创建预售订单
     * @param order
     * @return
     */
    MchCreatePresaleOrderResult mchCreatePresaleOrder(MchCreatePresaleOrderOrder order);

    /**
     * 生成订单以后支付
     * @param order
     * @return
     */
    MchOrderPayResult mchOrderPay(MchCreateOrderPayOrder order);

    /**
     * 订单详情
     * @param order
     * @return
     */
    AppletOrderDetailResult appletOrderDetail(AppletOrderDetailOrder order);

    /**
     * 订单列表
     * @param order
     * @return
     */
    AppletOrderQueryResult appletOrderQuery(AppletOrderQueryOrder order);

    /**
     * 取消订单
     * @param order
     * @return
     */
    OrderCancelResult orderCancelByOrdOrderNo(OrderCancelOrder order);

    OrderConfirmReceiveResult orderConfirmReceive(OrderConfirmReceiveOrder order);

    OrderSendTimeResult orderSendTime(OrderSendTimeOrder order);

    /**
     * 申请退货
     * @param order
     * @return
     */
    OrderApplyReturnResult orderApplyReturn(OrderApplyReturnOrder order);

    OrderArriveResult orderArriveByOrdOrderNo(OrderArriveOrder order);

    ReturnComputeResult returnComputeByOrdOrderNo(ReturnComputeOrder order);


    QueryOrderReturnResult queryOrderReturn(QueryOrderReturnOrder order);

    QueryOrderReturnDetailResult queryOrderReturnDetail(QueryOrderReturnDetailOrder order);

    PresaleOrderDetailResult queryPresaleDetail(PresaleOrderDetailOrder order);


    OrderJhPayResult jhInfo(BaseOrder order);
}
